﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using HZ.Supervise.Model.Query;
using HZ.Supervise.Model;

namespace HZ.Supervise.IBLL
{
    public interface IBLL_ProcureCatalog
    {
        /// <summary>
        /// 获取质量层次列表
        /// </summary>
        /// <returns></returns>
        IList<string> GetQualityLevels();

        /// <summary>
        /// 根据编号获取药品信息
        /// </summary>
        /// <param name="ProcureCatalogID"></param>
        /// <returns></returns>
        Model.View.ProcureCatalog GetProcureCatalogByID(string ProcureCatalogID);
          /// <summary>
        /// 批量更新全部数据
        /// </summary>
        /// <returns></returns>
        int InsertIntoDistributionRatioAll(DistributionRatio distributionRation, DistributionRatioLog distributionRationLog, string where, int res);
		  /// <summary>
        /// 将药品信息插入 
        /// </summary>
        /// <param name="blackList">比例</param>
        /// <returns></returns>
	    int InsertIntoDistributionRatio(HZ.Supervise.Model.DistributionRatio distribution, HZ.Supervise.Model.DistributionRatioLog distributionLog);
           /// <summary>
        /// 批量更新与插入数据
        /// </summary>
        /// <param name="distributionRationList"></param>
        /// <param name="distributionRationLogList"></param>
        /// <returns></returns>
        int InsertIntoDistributionRatioList(IList<DistributionRatio> distributionRationList,IList<DistributionRatioLog> distributionRationLogList);
		/// <summary>
		/// 将药品信息更新
		/// </summary>
		/// <param name="blackList">比例</param>
		/// <returns></returns>
		int UpdateIntoDistributionRatio(HZ.Supervise.Model.DistributionRatio distribution, HZ.Supervise.Model.DistributionRatioLog distributionLog); 
        /// <summary>
        /// 设置为或取消设置为贵重药品
        /// </summary>
        /// <param name="ProcureCatalogID">药品编码</param>
        /// <param name="IsPrecious">true设置为贵重药品,false取消设置为贵重药品</param>
        /// <returns>1成功0失败</returns>
        int SetAsPreciousDrugs(IList<Model.Insurance> list);
		/// <summary>
		/// 根据条件查询出所有采购目录表中的数据并查询出补贴比例
		/// </summary>
		/// <param name="stwhere"></param>
		/// <param name="currentPage"></param>
		/// <param name="pagesize"></param>
		/// <param name="totalRecord"></param>
		/// <returns></returns>
	     DataTable GetScaleInfo(string stwhere,string areaId,int rel, int currentPage, int pagesize, out int totalRecord);
        /// <summary>
        /// 获取未被采购药品列表
        /// </summary>
        /// <param name="where"></param>
        /// <param name="currentpage"></param>
        /// <param name="pagesize"></param>
        /// <param name="totalrecord"></param>
        /// <returns></returns>
        IList<Model.View.ProcureCatalog> GetUnTradeProcureCatalog(Model.Query.ProcureCatalog where, int currentpage, int pagesize, out int totalrecord);
        /// <summary>
        /// 获取贵重药品列表
        /// </summary>
        /// <param name="where"></param>
        /// <param name="isprecious">空:全部;true贵重药品;false非贵重药品;</param>
        /// <param name="currentpahe"></param>
        /// <param name="pagesize"></param>
        /// <param name="totalrecord"></param>
        /// <returns></returns>
        DataTable GetIsPreciousProcureCatalog(Model.Query.ProcureCatalog where, bool? isprecious, int currentpahe, int pagesize, out int totalrecord);

        /// <summary>
        /// 获取未配送企业列表
        /// </summary>
        /// <param name="currentpage"></param>
        /// <param name="pagesize"></param>
        /// <param name="totalrecord"></param>
        /// <returns></returns>
        DataTable GetUnDistributeCompanyList(UnDistributeCompanyQuery where, int currentpage, int pagesize, out int totalrecord);

        /// <summary>
        /// 获取未配送明细
        /// </summary>
        /// <param name="where"></param>
        /// <param name="currentpage"></param>
        /// <param name="pagesize"></param>
        /// <param name="totalrecord"></param>
        /// <returns></returns>
        DataTable GetUnDistributeDetail(Model.Query.UnDistributeCompanyQuery where, int currentpage, int pagesize, out int totalrecord);

        /// <summary>
        /// 查询采购目录信息
        /// </summary>
        /// <param name="productname"></param>
        /// <param name="currentpage"></param>
        /// <param name="pagesize"></param>
        /// <param name="totalrecord"></param>
        /// <returns></returns>
        DataTable GetProcureCatalog(string productname,string _sortId,  int currentpage, int pagesize, out int totalrecord);

                /// <summary>
        /// 条件查询采购目录信息（有效的【在采购项目有效期内】）
        /// </summary>
        /// <param name="procureCatalog">查询用实体</param>
        /// <param name="currentPage">当前页</param>
        /// <param name="pageSize">每页显示记录数</param>
        /// <param name="totalRecord">（输出参数）总记录数目</param>
        /// <returns>所有采购目录信息</returns>
        IList<Model.View.ProcureCatalog> GetProcureCatalogByWhere(Model.Query.ProcureCatalog procurecatalog, int currentPage, int pageSize, out int totalRecord);

        /// <summary>
        /// 获取类别 名字为空 返回返回所有
        /// </summary>
        /// <param name="strsortname"></param>
        /// <returns></returns>
        DataTable GetSort(string strsortname, int currentPage, int pagesize, out int totalRecord);

        /// <summary>
        /// 返回疾病种类
        /// </summary>
        /// <param name="strsortname"></param>
        /// <returns></returns>
        DataTable GetPsympToms(string strwhere,int currentPage, int pagesize, out int totalRecord);

        /// <summary>
        /// 配送率48小时统计（高值）
        /// </summary> 
        DataTable GetCompanyRate(string strwhere, string timeform, string timeTo, string orderby, int currentPage, int pagesize, out int totalRecord);
        /// <summary>
        /// 配送率48小时统计（低值）
        /// </summary> 
        DataTable GetCompanyRate_DZ(string strwhere, string timeform, string timeTo, string orderby, int currentPage, int pagesize, out int totalRecord);

        
        /// <summary> 
        /// 条件查询采购目录信息（有效的【在采购项目有效期内】）
        /// </summary>
        /// <param name="procureCatalog">查询用实体</param>
        /// <param name="currentPage">当前页</param>
        /// <param name="pageSize">每页显示记录数</param>
        /// <param name="totalRecord">（输出参数）总记录数目</param>
        /// <returns>所有采购目录信息</returns>
        DataTable GetProcureCatalogByWhere(HZ.Supervise.Model.View.ProcureCatalog procurecatalog, int currentPage, int pageSize, out int totalRecord);



        #region 参会相关
        /// <summary>
        /// 会议列表  
        /// </summary>  
        DataTable GetMeetList(string str, int currentpage, int pagesize, out int totalrecord);
        /// <summary>
        /// 会议列表  
        /// </summary>  
        DataTable GetMeetList2(string str);
        /// <summary>
        /// 新增/修改会议
        /// </summary>  
        int AddMeet(Model.Meet mt);
        /// <summary>
        /// 删除会议
        /// </summary>  
        int DelMeet(string mid);
        /// <summary>
        /// 参会人员列表  
        /// </summary>  
        DataTable GetMeetInfoList(string str, int currentpage, int pagesize, out int totalrecord);
        /// <summary>
        /// 参会人员列表（中心端） 
        /// </summary>   
        DataTable GetMeetInfoListzbzx(string str, int currentpage, int pagesize, out int totalrecord);
        /// <summary>
        /// 更新参会人员信息
        /// </summary> 
        int UpdateCHRYInfo(HZ.Supervise.Model.MeetInfo hdl);
        /// <summary>
        /// 删除参会人员信息
        /// </summary>  
        int DelCHRYInfo(string ids);
        /// <summary>
        /// 医院列表  
        /// </summary>  
        DataTable GetHosList(string str, string mid);
        /// <summary>
        /// 保存医院参会人员信息  
        /// </summary>  
        int SaveHosMeet(List<HZ.Supervise.Model.MeetInfo> list);
        /// <summary>
        /// 获取已上报人数
        /// </summary>  
        int GetHaveSubCount(string oid, string mid);
        /// <summary>
        /// 获取培训需求  
        /// </summary>  
        DataTable GetPxContent(string oid, string mid);
        /// <summary>
        /// 是否填写培训需求  
        /// </summary>  
        int IsPxContent(string oid, string mid);
        /// <summary>
        /// 判断会议报名时间是否过时  1过时 0未过时
        /// </summary>  
        int IsBmGuoShi(string mid);
        /// <summary>
        /// 获取培训需求（中心端） 
        /// </summary>   
        DataTable GetPxContentzbzx(string str, int currentpage, int pagesize, out int totalrecord);
        /// <summary> 
        /// 填写培训需求
        /// </summary>  
        int SetPxContent(Model.MeetPxContent mt);
        #endregion
    }
}
